/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import java.util.*;
import persistencia.PersistenciaArticulo;

/**
 * Clase que representa un Articulo Exclusivo para su venta
 * @author JAVA
 */
public class ArticuloVenta extends Articulo {

    //Constructor: los primeros atributos, desde "codigo" hasta "listapromociones", son de la clase Articulo
    public ArticuloVenta(Date fechaAlta, String titulo, Proveedor prove, Tarifa tarifa) {
        super(fechaAlta, prove, true, tarifa, true, titulo);

    }

    /**
     * Constructor de un articulo de venta con su id 
     * @param id
     * @param fechaAlta
     * @param proveedor asociado al articulo
     * @param tarifa asociada al articulo
     * @param nombre del articulo
     * @param booleano que indica si el articulo es para la venta o no
     * @param booleano que indica si el articulo se encuentra disponible o no
     */
    public ArticuloVenta(int id, Date fechaAlta, String titulo, Proveedor prove, Tarifa tarifa, boolean disponible, boolean seVende) {
        super(id, fechaAlta, prove, disponible, tarifa, seVende, 0, titulo);

    }

    @Override
    public String toString() {
        return "\n ----------------------------------- \n    ---- ARTICULOS DE VENTA ----  \n ----------------------------------- \n" + " Id: " + super.getId() + "\n Titulo: " + super.getTitulo() + "\n Proveedor: " + super.getProve().getNombre() + "\n Tarifa: " + super.getTarifa().getDescripcion() + "\n ----------------------------------- \n";
    }

    public void altaArticuloVenta(ArticuloVenta a1) throws ExcepcionPersistencia {
        if (PersistenciaArticulo.insertarArticuloVenta(a1) != 1) {
            throw new ExcepcionPersistencia("El juego no se ha dado de alta correctamente");
        }
    }

    public static int mostrarArticulosSeVenden() {
        List<Articulo> a = PersistenciaArticulo.obtenerArticulosSeVenden();
        if (a.isEmpty()) {
            System.out.println("No hay ningun articulo en venta");
        }
        Iterator it = a.iterator();
        while (it.hasNext()) {
            Articulo ar = (Articulo) it.next();
            System.out.println(ar);
        }
        return a.size();
    }

    public static int mostrarArticuloVenta() {

        List<ArticuloVenta> arti = PersistenciaArticulo.devolverArticuloVenta();
        if (arti.isEmpty()) {
            System.out.println("No hay ningun articulo de venta");
        }
        Iterator it = arti.iterator();
        while (it.hasNext()) {
            ArticuloVenta a = (ArticuloVenta) it.next();
            System.out.println(a);
        }
        return arti.size();
    }
}
